package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生成绩业务对象 score
 *
 * @author ruoyi
 * @date 2025-06-30
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ScoreBo extends BaseEntity {

    /**
     * 成绩ID
     */
    @NotNull(message = "成绩ID不能为空", groups = { EditGroup.class })
    private Long scoreId;

    /**
     * 学生ID
     */
    @NotNull(message = "学生ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long studentId;

    /**
     * 课程ID
     */
    @NotNull(message = "课程ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long courseId;

    /**
     * 平时成绩
     */
    @NotNull(message = "平时成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal regularScore;

    /**
     * 考试成绩
     */
    @NotNull(message = "考试成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal examScore;

    /**
     * 总成绩
     */
    @NotNull(message = "总成绩不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal totalScore;

    /**
     * 绩点
     */
    @NotNull(message = "绩点不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gradePoint;

    /**
     * 排名
     */
    @NotNull(message = "排名不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long ranking;

    /**
     * 学期
     */
    @NotBlank(message = "学期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String semester;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
